The virtual explosion of technical advances in microelectronics, digital computers and software have changed the face of modem society. In fact, these technological advances have become so important and pervasive that this explosion is sometimes referred to as "the information revolution." Through telephone lines, networks, satellite communications and the like, information and resources are ever increasingly being accessed and shared.
When a group of computers are connected to one another, such as in a client/server network, a management service is typically used to organize and administer information and resources across the network. Management services usually access or include a database having a collection of objects that represent a variety of things. For instance, some typical objects represent users, groups, printers, computers, and the like. Objects in a management service are often organized in flat domains such as the SECURITY ACCOUNTS MANAGER ("SAM") of WINDOWS NT, in a distributed directory such as NOVELL DIRECTORY SERVICES ("NDS"), or in other ways known in the art. Each management service object has at least one associated attribute with one or more associated values. Generally, each attribute has an attribute syntax such that the value associated with the attribute is of a data type corresponding to the attribute syntax. For example, integer values are associated with integer attributes.
Typically, each object is of a particular type and is created from a corresponding class. For example, a User object would be created from a User class, a Printer object would be created from a Printer class, etc. The object classes provide a kind of template to define the various attributes that will be associated with the objects. Building on the prior example, an object created from the User class could have the following attributes: Given Name, Last Name, Title, Telephone Number, etc. When an object is created from a class, values are filled into the various attributes of the class, thereby creating an instance of the class. For example, a User object could have the value "Joyce" associated with the attribute Given Name.
Management service objects are typically viewed and edited with a specially designed program, such as an administrator or manager. Usually, but not always, objects are displayed in a graphical user interface showing the relationship of the various objects. Upon the selection of a given object, coupled with an appropriate command, a detailed user interface or detailed page is typically provided specific to the class from which the object was created. The detailed page usually displays in a specially formatted window several, but not necessarily all, of the attributes in the class and the associated values of the object. In other words, the detailed page used for reading and editing values associated with object attributes is often dependent upon and tailored to the object class.
Detailed pages tailored to object classes work well for predefined or factory provided object classes. However, object classes are usually extensible. In other words, new custom classes can be created, or existing object classes can be modified, to include customized combinations of attributes. To view or edit objects created from newly created classes, a new customized detailed page must be developed, such as through the implementation of a snap-in module. Likewise, to view and edit objects created from modified classes, the existing detailed page must be modified. For instance, one could add an attribute called Social Security Number to the User class. To read and edit values to this new attribute, the detailed page for User objects would need to be modified to include a field for the Social Security Number attribute. Whether creating or modifying a detailed page, someone is typically required to develop a customized user interface, which often involves the expenditure of development time and programming expertise.
Therefore, there is a need for a viewer and attribute editor for management service objects, which provides a means for displaying and editing values associated with object attributes independent of the class from which the object was created, without having to develop a customized user interface.